import { mapGetters } from "vuex";
export default {
	computed: {
		...mapGetters(["userInfo"])
	},
  methods: {
	  setAgree(key) {
		  uni.navigateTo({
			  url: '/pages/service/policy?key=' + key
		  })
	  },

	getAppPosition() {
		uni.getLocation({
			type: 'gcj02',
			geocode: true,
			success: function(res) {
				console.log('**定位信息', res);
				uni.setStorageSync('location',res)
			},
			fail: function(err) {

			}
		});
		uni.setStorageSync('location',res)
	},
    toUrl(page,isAuth) {
		if(isAuth){
			let userInfo = uni.getStorageSync('userInfo') || {}
			console.log('userInfo',userInfo)
			if(!userInfo.id){
				uni.showToast({
					title:'请先登录',
					icon:'none'
				})
				return;
			}
		}
		uni.navigateTo({
			url:page
		})
    },
	formatDate(timestamp,formatType){
		const date = new Date(timestamp * 1000);
		const year = date.getFullYear();
		const month = ("0" + (date.getMonth() + 1)).slice(-2);
		const day = ("0" + date.getDate()).slice(-2);

		let formattedDate = '';

		switch (formatType) {
			case 'YYYY年MM月DD日':
			  formattedDate = `${year}年${month}月${day}日`;
			  break;
			case 'MM/DD/YYYY':
			  formattedDate = `${month}/${day}/${year}`;
			  break;
			default:
			  formattedDate = `${year}-${month}-${day}`;
		}

		return formattedDate;
	},

	  /**
	   * 检查登录状态
	   * @returns {boolean} 是否已登录
	   */
	  $checkLogin() {
		  return !!this.userInfo.id
	  },

	  /**
	   * 显示登录提示并跳转
	   * @returns {Promise} 返回Promise，用户确认后跳转到登录页
	   */
	  $showLoginModal() {
		  return new Promise((resolve, reject) => {
			  uni.showModal({
				  title: '提示',
				  content: '请先登录',
				  confirmText: '去登录',
				  cancelText: '取消',
				  success: (res) => {
					  if (res.confirm) {
						  this.$goPage({
							  url: '/pages/login/login',
						  })
						  resolve(true)
					  } else {
						  reject(false)
					  }
				  },
				  fail: () => {
					  reject(false)
				  }
			  })
		  })
	  },

	  /**
	   * 页面跳转方法
	   * @param {Object} options - 跳转参数
	   * @param {string} options.url - 跳转的页面路径
	   * @param {Object} [options.params] - 页面参数
	   * @param {boolean} [options.redirect=false] - 是否重定向（替换当前页面）
	   * @param {boolean} [options.reLaunch=false] - 是否重启应用
	   * @param {boolean} [options.switchTab=false] - 是否跳转到 tabBar 页面
	   * @param {boolean} [options.needLogin=false] - 是否需要登录
	   */
	  async $goPage({ url, params = {}, redirect = false, reLaunch = false, switchTab = false, needLogin = false }) {
		  // 如果需要登录且未登录，显示登录提示
		  if (needLogin && !this.$checkLogin()) {
			  try {
				  await this.$showLoginModal()
				  return // 用户确认登录后，跳转到登录页面，当前跳转终止
			  } catch {
				  return // 用户取消登录，终止跳转
			  }
		  }

		  // 处理参数
		  const query = Object.keys(params)
			  .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
			  .join('&')
		  const fullUrl = query ? `${url}?${query}` : url

		  // 根据不同的跳转方式执行
		  if (reLaunch) {
			  uni.reLaunch({ url: fullUrl })
		  } else if (redirect) {
			  uni.redirectTo({ url: fullUrl })
		  } else if (switchTab) {
			  uni.switchTab({ url: fullUrl })
		  } else {
			  uni.navigateTo({ url: fullUrl })
		  }
	  }
  },
	// 分享给朋友
	onShareAppMessage() {
		return {

		}
	},
	// 分享到朋友圈
	onShareTimeline() {
		return {

		}
	},
}
